Inspiration sources

https://github.com/BenjiKCF/Neural-Net-with-Financial-Time-Series-Data https://github.com/alberduris/SirajsCodingChallenges/tree/master/Stock%20Market%20Prediction

Let's explore datasets

Explore input dataset

Will use target dataset Bitcoin in Cryptocurrency Historical Prices

Bitcoin data at 1-day intervals from April 28, 2013

Will explore full input dataset

Feature evalution over time

Will take only last 4 years, because they mostly interesting

Data featuring

In theory we are going to use 4 features: The price itself and three extra technical indicators.

MACD (Trend) Stochastics (Momentum) Average True Range (Volume)

Functions

Exponential Moving Average: Is a type of infinite impulse response filter that applies weighting factors which decrease exponentially. The weighting for each older datum decreases exponentially, never reaching zero.

MACD: The Moving Average Convergence/Divergence oscillator (MACD) is one of the simplest and most effective momentum indicators available. The MACD turns two trend-following indicators, moving averages, into a momentum oscillator by subtracting the longer moving average from the shorter moving average.

Stochastics oscillator: The Stochastic Oscillator is a momentum indicator that shows the location of the close relative to the high-low range over a set number of periods.

Average True Range: Is an indicator to measure the volalitility (NOT price direction). The largest of:

MACD

Stochastics Oscillator

Average True Range

Check for normal distribution

Check depenence of trading and price from date in year and time of day

Firstly define function for display frequiency

Frequency of price

Frequency of transaction volume

Compare train and test datasets

Training data exploration

Testing data exploration

Normalise data

Will use only training mean and deviation for not give NN access to test dataset

Subtract the mean and divide by the standard deviation of each feature will give required normalisation

Normalisation based on max-min

Normalisation for testing must be based on train mean

Check window generator

Try baseline model

Try plot model

Explore training metrics